

package com.hazelcast.jet.test;

import com.hazelcast.internal.util.FilteringClassLoader;

import java.io.InputStream;
import java.net.URL;
import java.util.List;

public class FilteringAndDelegatingResourceLoadingClassLoader extends FilteringClassLoader {
    private final ClassLoader delegate;

    public FilteringAndDelegatingResourceLoadingClassLoader(List<String> excludePackages, String enforcedSelfLoadingPackage, ClassLoader delegate) {
        super(excludePackages, enforcedSelfLoadingPackage);
        this.delegate = delegate;
    }

    @Override
    public URL getResource(String name) {
        URL resource = this.delegate.getResource(name);
        if (resource == null) {
            return super.getResource(name);
        }
        return resource;
    }

    @Override
    public InputStream getResourceAsStream(String name) {
        InputStream stream = this.delegate.getResourceAsStream(name);
        if (stream == null) {
            return super.getResourceAsStream(name);
        }
        return stream;
    }

}
